A data-communications system, such as a computer disk drive or a cell phone, typically includes a read/write channel, which recovers data from a received read signal (sometimes called a data signal) by interpreting a stream of bits. Similarly, during a write data cycle, the read/write channel encodes data to a write signal or transmit signal. Such systems may read and write data to and from storage mediums and/or communication channels at ever-increasing rates. With the increase in data throughput, software and hardware may need to be more and more resilient to noise-induced errors and any encoding schemas need to be more and more efficient. Thus, many communication and computer systems employ various coding techniques that may be implemented to limit errors that may arise.
One particular coding technique may be referred to as modulation or constrained coding. Modulation coding may refer, generally, to encoding a data stream to meet a constraint, such as limiting the number of consecutive ones or zeroes in a binary stream of bits. One particular example of modulation coding is run-length-limited (RLL) coding. RLL coding adds redundancy and may be used to ensure that timing information is present in the data stream when the data stream is received (in the case of data transmission) or retrieved (in the case of data storage). A data stream in its analog form generally includes a series of pulses, e.g., electrical voltage pulses, which may represent a transition from a logical one to a logical zero or vice versa. RLL coding provides timing recoverability by encoding the data stream such that the number of consecutive logical zeros in the data stream is limited to a desired maximum number, or k-constraint. The k-constraint ensures that the space between pulses is not too long, and thereby provides timing recoverability because the space between pulses does not carry any timing information. However, ever-increasing requirements for performance parameters require that the RLL coding be implemented at higher and higher rates.